This invention relates generally to the backup and recovery of virtual machines in a Windows environment, and more particularly to a single unified framework for backing up virtual machines in different configurations and in different environments.
Traditional approaches to Windows hypervisor backups employed volume shadow copy service (VSS) for incremental backups. During a full backup, a VSS snapshot was taken of the volume on which the target virtual machine resides to freeze the virtual machine's state. Once the snapshot was taken, a recovery snapshot and a differencing disk were created for the target virtual machine. The virtual machine was then run on the recovery snapshot, and all writes would be directed to the new differencing disk.
This and other traditional approaches to backup of virtual machines were heavily dependent on the underlying system design. Windows hypervisors provided the user with various configurations to store and use virtual machines. These included a stand-alone local storage-based host; a failover cluster with various hosts having common cluster shared volumes (CSVs); a standalone or failover cluster with an SMB share to store and use virtual machines; or a mix of the foregoing. To handle the various configurations, different writers, different providers, etc. were required, which resulted in different backup architectures and solutions for different configurations. Most approaches also required the active participation from all hosts in the case of a cluster. This resulted in numerous issues. One issue was reliability. The VSS writers were not very reliable and large environments, leading to backup failures, and the virtual machines ran on differencing disks all the time which impacted overall performance. Another issue was scalability. Because the VSS writers on the host were involved in the backups, parallel backups could not be performed, thus leading to serialized backups. Moreover, because the VSS snapshots were taken at the volume level, even if only a single virtual machine was backed up all the virtual machines on the volume were impacted. Additionally, the virtual machines running on differencing disks led to space overhead. A further issue was performance. Backup agents had to be installed on every host because the VSS backup writers were involved, which adversely impacted availability; a lot of data had to be copied; and it took a long time to create volume level snapshots.
To address some of these issues, resilient change tracking (RCT), which is a native Microsoft change block tracker (CBT), was introduced in Windows Server 2016. It made incremental backups faster and easier without the necessity of writing and maintaining different CBT mechanisms by creating for every virtual hard disk files that tracked the changed blocks for each virtual hard disk chain. Instead of having to backup an entire virtual hard disk file, or having to traverse the whole file in order to obtain at the changed blocks, the backup software could query the files and get a list of blocks that had changed and backup only the changed blocks during incremental backups.
While RCT addressed some of the issues with VSS, it did not address all of them. For instance, different workflows were still required for different hypervisor configurations. For example, virtual machines stored on a CSV volume and on a SMB share on the same host cannot be backed up using the same configuration. This required the involvement of their hosts.
It is desirable to provide methods and systems for backing up virtual machines in different hypervisor configurations that address the foregoing and other problems of known backup approaches. In particular, it is desirable to provide a unified backup approach for virtual machines in a user environment that enables machines that are local as well as those that are highly available (CSV and SMB) to be backed up, and that effectively performs load-balancing without requiring the active participation of all the hosts in the user environment. It is to these ends that the present invention is directed.